package com.ruoyi.common.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.domain.hand.Point;
import com.ruoyi.common.domain.hand.PointTypeHandler;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 商家信息表，存储所有参与霸王餐活动的商家信息
 * </p>
 *
 * @author jiabao
 * @since 2025-06-25
 */

@Data
@TableName("business_merchants")
@ApiModel(value = "Merchants对象", description = "商家信息表，存储所有参与霸王餐活动的商家信息")
public class Merchants implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 商家ID，主键自增
     */
    @ApiModelProperty("商家ID，主键自增")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 商家名称(用于前端展示和商家识别)
     */
    @TableField("name")
    @ApiModelProperty("商家名称(用于前端展示和商家识别)")
    private String name;

    /**
     * 商家头像URL(用于前端展示商家logo)
     */
    @TableField("avatar_url")
    @ApiModelProperty("商家头像URL(用于前端展示商家logo)")
    private String avatarUrl;

    /**
     * 商家详细地址(用于用户导航和位置展示)
     */
    @TableField("address")
    @ApiModelProperty("商家详细地址(用于用户导航和位置展示)")
    private String address;

    /**
     * 商家地理位置(POINT类型，用于附近商家查询和距离计算)
     */
    @ApiModelProperty("商家地理位置(POINT类型，用于附近商家查询和距离计算)")
    @TableField(value = "location", typeHandler = PointTypeHandler.class)
    private Point location;

    /**
     * 商家联系电话(用于用户联系商家)
     */
    @TableField("contact_phone")
    @ApiModelProperty("商家联系电话(用于用户联系商家)")
    private String contactPhone;



    /**
     * 小程序跳转地址
     */
    @ApiModelProperty("小程序跳转地址")
    @TableField("mini_program_address")
    private String miniProgramAddress;

    /**
     * 店铺归属平台id
     */
    @TableField("platform_id")
    @ApiModelProperty("店铺归属平台id")
    private Long platformId;

    /**
     * 商家状态：1-正常营业 0-已下线
     */
    @TableField("status")
    @ApiModelProperty("商家状态：1-正常营业 0-已下线")
    private Integer status;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @TableField("created_at")
    private LocalDateTime createdAt;

    /**
     * 最后更新时间
     */
    @TableField("updated_at")
    @ApiModelProperty("最后更新时间")
    private LocalDateTime updatedAt;

    /**
     * 操作人id
     * 注意: 该操作人为内部人员 非商业用户 对应sys_user
     */
    @ApiModelProperty("操作人id")
    @TableField("operator_id")
    private Long operatorId;

    /**
     * 推广人id
     * 注意: 该推广人为内部人员 非商业用户 对应sys_user
     */
    @ApiModelProperty("推广人id")
    @TableField("promoter_id")
    private Long promoterId;



}
